-
Notifications
You must be signed in to change notification settings - Fork 414
[AP][Timing] Added Basic Net Weighting #2969
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[AP][Timing] Added Basic Net Weighting #2969
Conversation
Added basic timing awareness to the AP flow by weighting nets in the AP solver by their criticality (the max criticality of all edges through that net). This makes the solver try to minimize the length of nets that are more critical more than nets that are less critical (according to the pre-clustering timing analyzer). Added a command-line option to tradeoff between timing and wirelength in the AP flow.
d42b93a
to
475f528
Compare
@vaughnbetz @amin1377 Good news regarding the timing-aware AP flow. Results on Titan (fixed IOs, 1.3 * MinW):
Note: 1 circuit ( AP tradeoff=0.0 is the AP flow with no net weighting (it is what the AP flow would produce before this PR). With this new net weighting scheme (with a sensible tradeoff), we can see a 4.7% improvement in CPD and a 5% improvement in WL on Titan (with higher run time; this change did not improve run time)! Increasing the tradeoff to be 1.0 makes you lose most of your gains. This is likely because the objectives of the global placer does not align with the full legalizer (0.75 tradeoff by default) or the detailed placer (0.5 tradeoff by default). Per-circuit results for AP tradeoff=0.5, normalized to non-AP:
As you can see, some of the circuits' CPD have gone up by as much as 12%, while WL remained mostly below 1.00. One circuit (gsm_switch) was worst in CPD and slightly worst in WL. |
Excellent! Interesting result at timing trade off of 1. |
Yeah I agree, I was not expecting the WL to improve while the CPD to get worse (yet still be better than non-AP). Perhaps the AP flow completely ignoring certain non-critical nets are causing the more critical nets to become shorter; however, this causes the originally non-critical nets to then become critical. This can probably be fixed by improving the accuracy of the pre-packed timing analysis using AP info. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Not sure if it’s relevant, but for the default placement, in a set of benchmarks I tested a while ago, setting the timing trade-off to 1 actually resulted in worse CPD, while wirelength improved slightly. |
Added basic timing awareness to the AP flow by weighting nets in the AP solver by their criticality (the max criticality of all edges through that net). This makes the solver try to minimize the length of nets that are more critical more than nets that are less critical (according to the pre-clustering timing analyzer).
Added a command-line option to trade-off between timing and wirelength in the AP flow.